import java.util.Scanner;

//时间复杂度O(m*n) + O(q)
//二维前缀和
//牛客DP35
//链接:https://www.nowcoder.com/practice/99eb8040d116414ea3296467ce81cbbc?tpId=230&tqId=2023819&ru=/exam/oj&qru=/ta/dynamic-programming/question-ranking&sourceUrl=%2Fexam%2Foj%3Fpage%3D1%26tab%3D%25E7%25AE%2597%25E6%25B3%2595%25E7%25AF%2587%26topicId%3D196
public class Solution {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        //1.入读数据
        int m = in.nextInt();
        int n = in.nextInt();
        int q = in.nextInt();

        int[][] arr = new int[m + 1][n + 1];
        for (int i = 1; i <= m; i++) {
            for (int j = 1; j <= n; j++) {
                arr[i][j] = in.nextInt();
            }
        }

        //2.创建前缀和矩阵(二维数组)
        long[][] sum = new long[m + 1][n + 1];//防溢出
        for (int i = 1; i <= m; i++) {
            for (int j = 1; j <= n; j++) {
                sum[i][j] = sum[i - 1][j] + sum[i][j - 1] + arr[i][j] - sum[i - 1][j - 1];
            }
        }

        //3.使用前缀和矩阵
        while (q > 0) {
            int x1 = in.nextInt();
            int y1 = in.nextInt();
            int x2 = in.nextInt();
            int y2 = in.nextInt();

            long ans = sum[x2][y2] - sum[x1 - 1][y2] - sum[x2][y1 - 1] + sum[x1 - 1][y1 - 1];
            System.out.println(ans);
            q--;
        }
    }
}
